package com.education.ai.service;

import com.education.ai.entity.Exercise;
import com.education.ai.entity.Student;

import java.util.List;
import java.util.Map;

/**
 * 学生服务接口
 */
public interface StudentService {
    
    /**
     * 查询所有学生
     */
    List<Student> findAll();
    
    /**
     * 根据ID查询学生
     */
    Student findById(Long id);
    
    /**
     * 保存学生信息
     */
    Student save(Student student);
    
    /**
     * 删除学生
     */
    void deleteById(Long id);
    
    /**
     * 根据年级查询学生
     */
    List<Student> findByGrade(String grade);
    
    /**
     * 根据班级ID查询学生
     */
    List<Student> findByClassId(String classId);
    
    /**
     * 根据班级名称查询学生
     */
    List<Student> findByClassName(String className);
    
    /**
     * 根据班级ID分页获取学生列表
     */
    List<Student> getStudentsByClassId(String classId, int page, int pageSize);
    
    /**
     * 从token获取学生ID
     */
    String getStudentIdFromToken(String token);
    
    /**
     * 获取当前登录学生信息
     */
    Student getCurrentStudent(String token);
    
    /**
     * 获取学生学习进度和表现数据
     */
    Map<String, Object> getStudentLearningProgress(String studentId);
    
    /**
     * 获取推荐练习题
     */
    List<Exercise> getRecommendedExercises(String studentId, String subject, String knowledgePoint);
    
    /**
     * 根据学号获取学生
     */
    Student getStudentByStudentId(String studentId);
    
    /**
     * 保存学生信息
     */
    Student saveStudent(Student student);
    
    /**
     * 更新学生密码
     */
    boolean updatePassword(String studentId, String currentPassword, String newPassword);
} 